package com.hqq.rabbitmq.event;

import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component;

/**
 * 模拟登录事件的监听器
 * spirng事件模型中的事件“监听者”
 * @author huangqiqin
 * @date 2021/04/10 21:15
 **/
@Component
@EnableAsync    // 开启异步方式
public class LoginEventListener implements ApplicationListener<LoginEvent> {

    /**
     * 当事件发生时，触发当前方法
     * @param loginEvent
     */
    @Override
    @Async      // 异步执行当前方法
    public void onApplicationEvent(LoginEvent loginEvent) {
        System.out.println(Thread.currentThread().getName() +  " ==> 触发了登录事件监听器");
        System.out.println(Thread.currentThread().getName() +  " ==> 登录事件内容：" + loginEvent.toString());
    }
}
